
Ext.ns("Ext.person");

Ext.person.Panel = Ext.extend(Ext.Panel,{
	title:'人员信息',
	cloasable : true,
	layout:'fit',
	buttonAlign: 'center',

	initComponent : function(){
	var _reader = new Ext.data.JsonReader(
			{
				root : 'list',
				totalProperty : 'totalCount',
				id : 'id',
				successProperty : '@success'
			}, 
			[ {
				name : 'personid',
				mapping : 'personid'
			}, {
				name : 'name',
				mapping : 'name'
			}, {
				name : 'personcategory',
				mapping : 'personcategory'
			}, {
				name : 'phone',
				mapping : 'phone'
			}, {
				name : 'address',
				mapping : 'address'
			}, {
				name : 'email',
				mapping : 'email'
			}, {
				name : 'fax',
				mapping : 'fax'
			}, {
				name : 'identitycardnumber',
				mapping : 'identitycardnumber'
			}, {
				name : 'sparefield1',
				mapping : 'sparefield1'
			}, {
				name : 'sparefield2',
				mapping : 'sparefield2'
			}, {
				name : 'sparefield3',
				mapping : 'sparefield3'
			}]);
	
	
	var _store =  new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({
            url: 'personManage/personInfoManageAction!getAll'
        }),
        pageSize : 20,
        reader : _reader
	});
		
		this.grid =  new Ext.grid.GridPanel({
			id:this.id+'grid',
			store : _store,
			height:300,
			width:800,
			sm: this.sm,
			cm  :  new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), {
				header : 'Id',
				dataIndex : 'personid',
				width : 70
			}, {
				header : '姓名',
				dataIndex : 'name',
				width : 70
			}, {
				header : '人员类别',
				dataIndex : 'personcategory',
				width : 70
			}, {
				header : '电话',
				dataIndex : 'phone',
				width : 70
			}, {
				header : '地址',
				dataIndex : 'address',
				width : 70
			}, {
				header : '邮箱',
				dataIndex : 'email',
				width : 70
			} , {
				header : '传真',
				dataIndex : 'fax',
				width : 70
			} , {
				header : '身份证',
				dataIndex : 'identitycardnumber',
				width : 70
			} ,{
				header : '操作',
				dataIndex : "personid",
				renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){
				var brow="pi_Operation('"+record.get('personid')
						+"','"+record.get('name')
						+"','"+record.get('personcategory')
						+"','"+record.get('phone')
						+"','"+record.get('address')
						+"','"+record.get('email')
						+"','"+record.get('fax')
						+"','"+record.get('identitycardnumber')+"');return false;";
				var b = ' <a  onclick="'+brow+'">操作</a>&nbsp;';
				
				return b;
			}
			} ]),
			bbar :  new Ext.PagingToolbar({
				pageSize : 20,
				store : _store,
				displayInfo : true,
				displayMsg : '显示 {0}-{1}条 / 共 {2} 条',
				emptyMsg : "无数据。",
				plugins        : [new Ext.ux.PageSizePlugin()],
				items : ['-']
			}),
			tbar : [{
				xtype : 'button',
				text : '新增',
				handler : function(b,e){
					var a  = Ext.getCmp("dm_personinfo_add");
					if(a == null ){
						a= new Ext.pi.UpdateWindow({
							id : "dm_personinfo_add",
							closable : true,
							title : "新增人员信息",
							buttons : [{
								xtype:'button',
								text:'确定',
								handler : function(b,e){
									var a = b.findParentBy(function(ct, cmp) { 
										return (ct instanceof Ext.pi.UpdateWindow) ? true : false; 
									});
									c = a.updatePanel;
									c.form.submit({
										url:'personManage/personInfoManageAction!insertPerson',
										method: 'post',
										success : function(form,action){
											Ext.Msg.alert('提示','新增人员信息！');
											//更新成功之后刷新store
											var n = Ext.getCmp('persongridpanel');
											if(n != null)
												n.grid.store.load({
													params:{
				          	        	 				start:0,
				          	        	 				limit: 20
												}
												});
									},
										failure : function(form,action){
											Ext.Msg.alert('提示','新增人员信息失败！');
									},
										params : {
											'personInfo.name': c.findById('name').getValue(),
											'personInfo.personcategory': c.findById('personcategory').getValue(),
											'personInfo.phone': c.findById('phone').getValue(),
											'personInfo.address': c.findById('address').getValue(),
											'personInfo.email': c.findById('mailbox').getValue(),
											'personInfo.fax': c.findById('fax').getValue(),
											'personInfo.identitycardnumber': c.findById('identitycardnumber').getValue()
										}
									});
									a.close();
							}
							},{
								xtype:'button',
								text:'取消',
								handler : function(b,e){
									var a = b.findParentBy(function(ct, cmp) { 
										return (ct instanceof Ext.pi.UpdateWindow) ? true : false; 
									});
									a.close();
							}
							}]
						});
					}
					a.show();
			}
			},{
		      	  xtype:'combo',
		      	  fieldLabel:'选择查询字段',
		      	  id: this.id+'inqueryType',
		      	  width : 160,
		      	    store : new Ext.data.SimpleStore({
		      	        fields : ['value', 'text'],
		      	        data : [['name', '姓名'], ['id', '身份证'],['','请选择查询字段']]
		      	    }),//填充数据
		      	   emptyText : '选择查询字段',
		      	   mode : 'local',//数据模式，local代表本地数据
		      	   readOnly : true,//是否只读
		      	   triggerAction : 'all',// 显示所有下列数据，一定要设置属性triggerAction为all
		      	   allowBlank : true,//不允许为空
		      	   valueField : 'value',//值
		      	   displayField : 'text',//显示文本
		      	   editable: false,//是否允许输入
		      	   forceSelection: false,//必须选择一个选项
		      	   blankText:'选择查询字段'//该项如果没有选择，则提示错误信息
		        },{
		        	xtype:'textfield',
		        	id:this.id+'inqueryText'
		        },{
		        	xtype:'button',
		        	text:'查询',
		        	handler : function(b,e){
		        		var a = b.findParentBy(function(ct, cmp) { 
		        			return (ct instanceof Ext.person.Panel) ? true : false; 
		        		});
		        		var inqueryType = a.grid.getTopToolbar().findById(a.id+"inqueryType").getValue();
		    			var inqueryText = a.grid.getTopToolbar().findById(a.id+"inqueryText").getValue();
		    			if(inqueryType == "" && inqueryType == ""){
//		    				Ext.Msg.alert("请选择查询字段并输入查询文本!");
//		    				return;
		    			}else if(inqueryType == ""){
		    				Ext.Msg.alert("请选择查询字段!");
		    				return;
		    			}else if(inqueryText == ""){
		    				Ext.Msg.alert("请输入查询文本!");
		    				return;
		    			}
		    			a.grid.store.baseParams = {
		    					start : 0,
		    					limit : 20, 
								inqueryType : inqueryType,
								inqueryText : inqueryText
						}
		    			a.grid.store.load();
		        }
		        }]
		});
		this.items = this.grid;

		Ext.person.Panel.superclass.initComponent.call(this);
}
});


/**
 * 更改操作函数
 * @return
 */
function pi_Operation(id,name,category,phone,address,email,fax,idnumber){

	var a  = Ext.getCmp("dm_personinfo_update");
	if(a == null ){
		a= new Ext.pi.UpdateWindow({
			id : "dm_personinfo_update",
			closable : true,
			title : "修改人员信息",
			buttons : [{
				xtype:'button',
				text:'确定',
				handler : function(b,e){
					var a = b.findParentBy(function(ct, cmp) { 
						return (ct instanceof Ext.pi.UpdateWindow) ? true : false; 
					});
					c = a.updatePanel;
					c.form.submit({
						url:'personManage/personInfoManageAction!updatePerson',
						method: 'post',
						success : function(form,action){
							Ext.Msg.alert('提示','更新人员信息成功！');
							//更新成功之后刷新store
							var n = Ext.getCmp('persongridpanel');
							if(n != null)
								n.grid.store.load({
									params:{
          	        	 				start:0,
          	        	 				limit: 20
								}
								});
					},
						failure : function(form,action){
							Ext.Msg.alert('提示','更新人员信息失败！');
					},
						params : {
							'personInfo.personid': c.findById('personid').getValue(),
							'personInfo.name': c.findById('name').getValue(),
							'personInfo.personcategory': c.findById('personcategory').getValue(),
							'personInfo.phone': c.findById('phone').getValue(),
							'personInfo.address': c.findById('address').getValue(),
							'personInfo.email': c.findById('mailbox').getValue(),
							'personInfo.fax': c.findById('fax').getValue(),
							'personInfo.identitycardnumber': c.findById('identitycardnumber').getValue()
						}
					});
					a.close();
			}
			},{
				xtype:'button',
				text:'取消',
				handler : function(b,e){
					var a = b.findParentBy(function(ct, cmp) { 
						return (ct instanceof Ext.pi.UpdateWindow) ? true : false; 
					});
					a.close();
			}
			}]
		});
	}
	
	a.updatePanel.findById('personid').setValue(id);
	a.updatePanel.findById('name').setValue(name);
	a.updatePanel.findById('personcategory').setValue(category);
	a.updatePanel.findById('phone').setValue(phone);
	a.updatePanel.findById('address').setValue(address);
	a.updatePanel.findById('mailbox').setValue(email);
	a.updatePanel.findById('fax').setValue(fax);
	a.updatePanel.findById('identitycardnumber').setValue(idnumber);
	a.show();

}